func generateMatrix(n int) [][]int {
    left, right := 0, n-1
    top, bottom := 0, n-1
    num := 1          // 填充的数
    tar := n * n      // 填充的最大数字
    ans := make([][]int, n) // 初始化结果数组
    for i:=0; i<n; i++ {
        ans[i] = make([]int, n)
    }
    for num <= tar {  // 一直循环直到填充到最大数字
        // 填充顶部
        for i:=left; i<=right; i++ {
            ans[top][i] = num
            num++
        }
        top++
        //填充右边
        for i:=top; i<=bottom; i++ {
            ans[i][right] = num
            num++
        }
        right--
        //填充底部
        for i:=right; i>=left; i-- {
            ans[bottom][i] = num
            num++
        }
        bottom--
        //填充左边
        for i:=bottom; i>=top; i-- {
            ans[i][left] = num
            num++
        }
        left++
    } 
    return ans
}